package model;

import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

@SuppressWarnings("serial")
public class FilmVerwaltung implements Serializable 
{

  private Map<String, Datentraeger> datentraegers = new HashMap<String, Datentraeger>();

  public FilmVerwaltung() 
  {
  }

  public FilmVerwaltung addDatentraeger(Datentraeger datentraeger)
  {
    if (datentraeger == null)
    {
    	throw new IllegalArgumentException("datentraeger must not be null!");
    }
   datentraegers.put(datentraeger.getName(), datentraeger);
    return this;
  }

  public FilmVerwaltung removeDatentraeger(Datentraeger datentraeger)
  {
    if (datentraeger == null)
    {
    	throw new IllegalArgumentException("datentraeger must not be null!");
    }
    datentraegers.remove(datentraeger.getName());
    return this;
  }

  public Datentraeger getDatentraegerByName(String name) 
  {
    if (name == null || name.trim().length() == 0)
    {
    	throw new IllegalArgumentException("name must not be null or empty!");
    }
    return datentraegers.get(name);
  }
  
	public void buildDatentraeger(Map<String, Datentraeger> datentraegers)
	{
		if (datentraegers == null || datentraegers.equals(Collections.emptyList()))
		{
			throw new IllegalArgumentException("datentraegers must not be null or empty!");
		}
		this.datentraegers = datentraegers;
	}

  public Collection<Datentraeger> getDatentraeger()
  {
    return Collections.unmodifiableCollection(datentraegers.values());
  }

	public void buildDatentraegers(List<Datentraeger> datentraegers) 
	{
		Iterator<Datentraeger>ite=datentraegers.iterator();
		Datentraeger helper;
		while(ite.hasNext())
		{
			helper = ite.next();
			this.datentraegers.put(helper.getName(), helper);
		}
		
		
		
	}
}
